package com.producteev4j.model.json.task;

import com.producteev4j.model.response.Task;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 * User: jcarrey
 * Date: 18/05/11
 * Time: 17:59
 * To change this template use File | Settings | File Templates.
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class TaskImpl implements Task {

    /**
     * {"task":{"id_task":"2554135","id_dashboard":"146402","id_creator":"107379","id_responsible":"107379",
     * "assign_by":"","time_created":"Wed, 18 May 2011 18:12:37 +0200",
     * "title":"Title of the task ! ","status":"1","star":"0","vote":"0","deadline":"","all_day":"-1",
     * "reminder":"0","repeating_interval":"","repeating_value":"1","hot":"0","progression":"0",
     * "public":"0","uid_lastchange":"107379","time_lastchange":"Wed, 18 May 2011 18:12:37 +0200",
     * "from":"0","time_status":"","r":"1","w":"1","x":"1","d":"1","viewed":"1",
     * "deleted":"0","nb_note":"0","nb_new_note":"0","labels":[],"notes":[]}}
     */


    @JsonProperty("id_task")
    private long idTask;
    @JsonProperty("id_dashboard")
    private long idDashboard;
    @JsonProperty("id_creator")
    private long idCreator;
    @JsonProperty("id_responsible")
    private long idResponsible;
    @JsonProperty("assign_by")
    private String assignBy;
    @JsonProperty("time_created")
    private String timeCreated;
    @JsonProperty("title")
    private String title;
    @JsonProperty("status")
    private int status;
    @JsonProperty("star")
    private int star;
    @JsonProperty("vote")
    private int vote;
    @JsonProperty("deadline")
    private String deadline;
    @JsonProperty("all_day")
    private int allDay;
    @JsonProperty("reminder")
    private int reminder;
    @JsonProperty("repeating_interval")
    private String repeatingInterval;
    @JsonProperty("repeating_value")
    private int repeatingValue;
    @JsonProperty("hot")
    private int hot;
    @JsonProperty("progression")
    private int progression;
    @JsonProperty("public")
    private int _public;
    @JsonProperty("uid_lastchange")
    private long uidLastChange;
    @JsonProperty("time_lastchange")
    private String timeLastChange;
    @JsonProperty("from")
    private long from;
    @JsonProperty("time_status")
    private String timeStatus;
    @JsonProperty("r")
    private int r;
    @JsonProperty("w")
    private int w;
    @JsonProperty("x")
    private int x;
    @JsonProperty("d")
    private int d;
    @JsonProperty("viewed")
    private int viewed;
    @JsonProperty("deleted")
    private int deleted;
    @JsonProperty("nb_note")
    private int nbNote;
    @JsonProperty("nb_new_note")
    private int nbNewNote;
    @JsonProperty("labels")
    private List<LabelWrapperImpl> labels;
    @JsonProperty("notes")
    private List<NoteWrapperImpl> notes;

    public long getIdTask() {
        return idTask;
    }

    public void setIdTask(long idTask) {
        this.idTask = idTask;
    }

    public long getIdDashboard() {
        return idDashboard;
    }

    public void setIdDashboard(long idDashboard) {
        this.idDashboard = idDashboard;
    }

    public long getIdCreator() {
        return idCreator;
    }

    public void setIdCreator(long idCreator) {
        this.idCreator = idCreator;
    }

    public long getIdResponsible() {
        return idResponsible;
    }

    public void setIdResponsible(long idResponsible) {
        this.idResponsible = idResponsible;
    }

    public String getAssignBy() {
        return assignBy;
    }

    public void setAssignBy(String assignBy) {
        this.assignBy = assignBy;
    }

    public String getTimeCreated() {
        return timeCreated;
    }

    public void setTimeCreated(String timeCreated) {
        this.timeCreated = timeCreated;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getStar() {
        return star;
    }

    public void setStar(int star) {
        this.star = star;
    }

    public int getVote() {
        return vote;
    }

    public void setVote(int vote) {
        this.vote = vote;
    }

    public String getDeadline() {
        return deadline;
    }

    public void setDeadline(String deadline) {
        this.deadline = deadline;
    }

    public int getAllDay() {
        return allDay;
    }

    public void setAllDay(int allDay) {
        this.allDay = allDay;
    }

    public int getReminder() {
        return reminder;
    }

    public void setReminder(int reminder) {
        this.reminder = reminder;
    }

    public String getRepeatingInterval() {
        return repeatingInterval;
    }

    public void setRepeatingInterval(String repeatingInterval) {
        this.repeatingInterval = repeatingInterval;
    }

    public int getRepeatingValue() {
        return repeatingValue;
    }

    public void setRepeatingValue(int repeatingValue) {
        this.repeatingValue = repeatingValue;
    }

    public int getHot() {
        return hot;
    }

    public void setHot(int hot) {
        this.hot = hot;
    }

    public int getProgression() {
        return progression;
    }

    public void setProgression(int progression) {
        this.progression = progression;
    }

    public int getPublic() {
        return _public;
    }

    public void setPublic(int _public) {
        this._public = _public;
    }

    public long getUidLastChange() {
        return uidLastChange;
    }

    public void setUidLastChange(long uidLastChange) {
        this.uidLastChange = uidLastChange;
    }

    public String getTimeLastChange() {
        return timeLastChange;
    }

    public void setTimeLastChange(String timeLastChange) {
        this.timeLastChange = timeLastChange;
    }

    public long getFrom() {
        return from;
    }

    public void setFrom(long from) {
        this.from = from;
    }

    public String getTimeStatus() {
        return timeStatus;
    }

    public void setTimeStatus(String timeStatus) {
        this.timeStatus = timeStatus;
    }

    public int getR() {
        return r;
    }

    public void setR(int r) {
        this.r = r;
    }

    public int getW() {
        return w;
    }

    public void setW(int w) {
        this.w = w;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getD() {
        return d;
    }

    public void setD(int d) {
        this.d = d;
    }

    public int getViewed() {
        return viewed;
    }

    public void setViewed(int viewed) {
        this.viewed = viewed;
    }

    public int getDeleted() {
        return deleted;
    }

    public void setDeleted(int deleted) {
        this.deleted = deleted;
    }

    public int getNbNote() {
        return nbNote;
    }

    public void setNbNote(int nbNote) {
        this.nbNote = nbNote;
    }

    public int getNbNewNote() {
        return nbNewNote;
    }

    public void setNbNewNote(int nbNewNote) {
        this.nbNewNote = nbNewNote;
    }

    public List<LabelWrapperImpl> getLabels() {
        return labels;
    }

    public void setLabels(List<LabelWrapperImpl> labels) {
        this.labels = labels;
    }

    public List<NoteWrapperImpl> getNotes() {
        return notes;
    }

    public void setNotes(List<NoteWrapperImpl> notes) {
        this.notes = notes;
    }

    @Override
    public String toString() {
        return new StringBuilder("TaskImpl{").append(
                "idTask=").append(idTask).append(
                ", idDashboard=").append(idDashboard).append(
                ", idCreator=").append(idCreator).append(
                ", idResponsible=").append(idResponsible).append(
                ", assignBy='").append(assignBy).append('\'').append(
                ", timeCreated='").append(timeCreated).append('\'').append(
                ", title='").append(title).append('\'').append(
                ", status=").append(status).append(
                ", star=").append(star).append(
                ", vote=").append(vote).append(
                ", deadline='").append(deadline).append('\'').append(
                ", allDay=").append(allDay).append(
                ", reminder=").append(reminder).append(
                ", repeatingInterval='").append(repeatingInterval).append('\'').append(
                ", repeatingValue=").append(repeatingValue).append(
                ", hot=").append(hot).append(
                ", progression=").append(progression).append(
                ", _public=").append(_public).append(
                ", uidLastChange=").append(uidLastChange).append(
                ", timeLastChange='").append(timeLastChange).append('\'').append(
                ", from=").append(from).append(
                ", timeStatus='").append(timeStatus).append('\'').append(
                ", r=").append(r).append(
                ", w=").append(w).append(
                ", x=").append(x).append(
                ", d=").append(d).append(
                ", viewed=").append(viewed).append(
                ", deleted=").append(deleted).append(
                ", nbNote=").append(nbNote).append(
                ", nbNewNote=").append(nbNewNote).append(
                ", labels=").append(labels).append(
                ", notes=").append(notes).append(
                '}').toString();
    }
}
